package com.estudioskelon.androidesrebotones;

import java.util.ArrayList;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Point;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Toast;

public class Escenario extends View {

	ArrayList<Bouncer> androides = new ArrayList();
	int selected;
	Canvas canvas;

	public Escenario(Context context, AttributeSet attrs) {
		super(context, attrs);
		// androide = new Bouncer(this);
	}

	@Override
	protected void onSizeChanged(int ancho, int alto, int ancho_anterior,
			int alto_anterior) {
	}

	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		this.canvas = canvas;
		// toast("Dibujando");
		updateBouncers();
		dibujar(canvas);
	}

	public void select(Point p) {
		for (int i = 0; i < androides.size(); i++) {
			if (androides.get(i).isAtPoint(p)) {
				selected = i;
				//System.out.println(i);
			}
		}
	}
	
	public int getEscenarioWidth(){
		return canvas.getWidth();
	}
	
	public int getEscenarioHeigth(){
		return canvas.getHeight();
	}

	private void toast(String texto) {
		Context contexto = getContext();
		int duracion = Toast.LENGTH_SHORT;
		Toast toast = Toast.makeText(contexto, texto, duracion);
		toast.show();
	}

	public void dibujar(Canvas canvas) {
		for (Bouncer androide : androides) {
			androide.draw(canvas);
		}
	}

	public void play(){
		if (androides.size() > 0)
			androides.get(selected).play();
	}
	
	public void pause(){
		if (androides.size() > 0)
			androides.get(selected).pause();
	}
	public void addBouncer() {
		if (androides.size() < 10)
			androides.add(new Bouncer(this));
	}

	public void rotarDerecha() {
		if (androides.size() > 0)
			androides.get(selected).rotarDerecha();
	}

	public void rotarIzquierda() {
		if (androides.size() > 0)
			androides.get(selected).rotarIzquierda();
	}

	public void izquierda() {
		if (androides.size() > 0)
			androides.get(selected).izquierda();
	}

	public void derecha() {
		if (androides.size() > 0)
			androides.get(selected).derecha();
	}

	public void bajar() {
		if (androides.size() > 0)
			androides.get(selected).bajar();
	}

	public void subir() {
		if (androides.size() > 0)
			androides.get(selected).subir();
	}

	public void updateBouncers() {
		for (Bouncer androide : androides){
			androide.updatePos(getEscenarioWidth(), getEscenarioHeigth());
		}
	}
}